﻿using System;
using System.Linq;
using System.Web;

namespace Thuoc24h.Home.Pages
{
    public partial class Success : BasePage.BasePages
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string str = "";
            string rqestSum = Request.QueryString["Checksum"];
            string status = Request.QueryString["transaction_status"];
            if (!Page.IsPostBack)
            {
                if (HttpContext.Current.Session["Checksum"] != null)
                {
                    if (rqestSum == HttpContext.Current.Session["Checksum"].ToString())
                    {
                        //

                        switch (status)
                        {
                            case "1": str = "Giao dịch chưa xách minh OTP"; break;
                            case "2": str = "Giao dịch đã xác minh OTP"; break;
                            case "4": str = "Giao dịch hoàn thành";
                                GiaodichHoanthanh();
                                break;
                            case "5": str = "Giao dịch bị hủy";
                                XoaHoaDon(); break;
                            case "6": str = "Giao dịch bị từ chối nhận tiền"; break;
                            case "7": str = "Giao dịch hết hạn";
                                XoaHoaDon(); break;
                            case "8": str = "Giao dịch thất bại";
                                XoaHoaDon(); break;
                            case "12": str = "Giao dịch bị đóng băng"; break;
                            case "13": str = "Giao dịch bị tạm giữ (thanh toán an toàn)"; break;
                            default: break;
                        }

                    }
                    else
                    {
                        str = "Giao dịch không đảm bảo tim cậy";
                    }

                    ltrStatus.Text = str;
                }
            }

        }

        private void GiaodichHoanthanh()
        {
            try
            {
                string status = Request.QueryString["transaction_status"];
                var orderId = Request.QueryString["order_id"];
                int id = int.Parse(orderId.Split(new char[] { '-' })[1]);
                var invoice = context.Invoices.SingleOrDefault(item => item.Id == id);
                if (invoice != null && status.Equals("4"))
                {
                    invoice.Status = 1;
                    context.SaveChanges();
                }
            }
            catch (Exception)
            {
                
                throw;
            }
        }


        private void XoaHoaDon()
        {

            try
            {

                var orderId = Request.QueryString["order_id"];
                int id = int.Parse(orderId.Split(new char[] { '-' })[1]);
                var invoice = context.Invoices.SingleOrDefault(item => item.Id == id);
                if (invoice != null)
                {
                    var order = context.OrderDetails.Where(item => item.InvoiceId == id);
                    foreach (var orderDetail in order)
                    {
                        context.DeleteObject(orderDetail);
                    }

                    context.DeleteObject(invoice);
                    context.SaveChanges();
                }

            }
            catch (Exception)
            {

                throw;
            }
        }
    }
}